ফাইল এনক্রিপশন এবং ডিক্রিপশন টুল

Computer Programming - সি++ প্রোগ্রামিং (C++ Programming) প্র্যাকটিস প্রোজেক্টস |
206
206

C++ ব্যবহার করে একটি সহজ ফাইল এনক্রিপশন এবং ডিক্রিপশন টুল তৈরি করা যায়, যা ফাইলের ডেটাকে একটি নির্দিষ্ট কী (key) এর মাধ্যমে এনক্রিপ্ট এবং ডিক্রিপ্ট করতে সক্ষম। এই উদাহরণে, XOR এনক্রিপশন পদ্ধতি ব্যবহার করা হবে, যা প্রতিটি বাইটের সাথে একটি কী XOR অপারেশন প্রয়োগ করে ডেটাকে এনক্রিপ্ট এবং ডিক্রিপ্ট করে।

এনক্রিপশন এবং ডিক্রিপশন টুলের লজিক

  1. XOR এনক্রিপশন: XOR এনক্রিপশন একটি সাধারণ পদ্ধতি, যেখানে প্রতিটি বাইটকে একটি নির্দিষ্ট কী এর সাথে XOR অপারেশন করে এনক্রিপ্ট করা হয়। ডিক্রিপশনেও একই অপারেশন ব্যবহার করা হয়।
  2. ইনপুট ফাইল এবং আউটপুট ফাইল: একটি ইনপুট ফাইল থেকে ডেটা পড়া হবে, এবং এনক্রিপশন/ডিক্রিপশন প্রক্রিয়ার পর আউটপুট ফাইলে ডেটা লেখা হবে।
  3. কী (Key): একটি নির্দিষ্ট কী ব্যবহার করা হবে, যা ফাইল এনক্রিপশন এবং ডিক্রিপশনের জন্য অপরিহার্য।

উদাহরণ: ফাইল এনক্রিপশন এবং ডিক্রিপশন টুল

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

// এনক্রিপশন এবং ডিক্রিপশন ফাংশন
void encryptDecrypt(const string &inputFile, const string &outputFile, char key) {
    ifstream inFile(inputFile, ios::binary); // ইনপুট ফাইল ওপেন করা (বাইনারি মোডে)
    ofstream outFile(outputFile, ios::binary); // আউটপুট ফাইল ওপেন করা (বাইনারি মোডে)

    if (!inFile || !outFile) {
        cout << "Error: Could not open input or output file." << endl;
        return;
    }

    char ch;
    while (inFile.get(ch)) { // প্রতিটি চরিত্র পড়া
        char encryptedChar = ch ^ key; // XOR এনক্রিপশন/ডিক্রিপশন
        outFile.put(encryptedChar); // এনক্রিপ্টেড/ডিক্রিপ্টেড ডেটা লেখা
    }

    inFile.close();
    outFile.close();

    cout << "Operation completed successfully. Output file: " << outputFile << endl;
}

int main() {
    string inputFile, outputFile;
    char key;
    char choice;

    cout << "File Encryption and Decryption Tool" << endl;
    cout << "Choose operation:" << endl;
    cout << "1. Encrypt a file" << endl;
    cout << "2. Decrypt a file" << endl;
    cout << "Enter choice (1 or 2): ";
    cin >> choice;

    cout << "Enter the input file name: ";
    cin >> inputFile;
    cout << "Enter the output file name: ";
    cin >> outputFile;
    cout << "Enter a single-character key for encryption/decryption: ";
    cin >> key;

    if (choice == '1') {
        encryptDecrypt(inputFile, outputFile, key); // এনক্রিপশন অপারেশন
    } else if (choice == '2') {
        encryptDecrypt(inputFile, outputFile, key); // ডিক্রিপশন অপারেশন
    } else {
        cout << "Invalid choice!" << endl;
    }

    return 0;
}

প্রোগ্রামের ব্যাখ্যা

ফাংশন encryptDecrypt:

  • এই ফাংশনটি একটি ইনপুট ফাইল পড়ে এবং প্রতিটি বাইটের সাথে XOR অপারেশন করে আউটপুট ফাইলে লেখা হয়।
  • প্রতিটি বাইটকে নির্দিষ্ট একটি key এর সাথে XOR করে এনক্রিপ্ট বা ডিক্রিপ্ট করা হয়।

মেইন ফাংশন (main):

  • প্রথমে ব্যবহারকারীকে এনক্রিপশন বা ডিক্রিপশন অপশন নির্বাচন করতে বলা হয়।
  • ইনপুট ফাইলের নাম, আউটপুট ফাইলের নাম এবং কী ইনপুট নেয়া হয়।
  • encryptDecrypt ফাংশনে এই ইনপুট গুলো পাঠিয়ে এনক্রিপশন বা ডিক্রিপশন কার্যক্রম সম্পন্ন করা হয়।

প্রোগ্রাম আউটপুট

File Encryption and Decryption Tool
Choose operation:
1. Encrypt a file
2. Decrypt a file
Enter choice (1 or 2): 1
Enter the input file name: plaintext.txt
Enter the output file name: encrypted.txt
Enter a single-character key for encryption/decryption: K
Operation completed successfully. Output file: encrypted.txt
  • প্রথমবার এনক্রিপ্ট করার সময় plaintext.txt ফাইল থেকে encrypted.txt ফাইল তৈরি করা হয়।
  • ডিক্রিপ্ট করার জন্য একই প্রক্রিয়ায় encrypted.txt ফাইলকে plaintext.txt আউটপুট ফাইল হিসেবে তৈরি করা যায়।

প্রোগ্রামের গুরুত্বপূর্ণ বিষয়সমূহ

  1. XOR এনক্রিপশন: প্রতিটি বাইটকে XOR অপারেশন করে ডেটা এনক্রিপ্ট ও ডিক্রিপ্ট করা হয়।
  2. বাইনারি মোড: ফাইলগুলো বাইনারি মোডে খোলা হয়েছে, যাতে বিভিন্ন ধরনের ডেটা এনক্রিপ্ট করা যায়।
  3. একটি কী ব্যবহার: কেবল একটি char টাইপ কী ব্যবহার করা হয়েছে, যা এনক্রিপ্ট ও ডিক্রিপ্ট উভয় কাজের জন্য যথেষ্ট।

প্রোগ্রামের সীমাবদ্ধতা এবং উন্নয়নের জন্য পরামর্শ

  1. বেশি সুরক্ষিত এনক্রিপশন অ্যালগরিদম: XOR এনক্রিপশন একটি সাধারণ পদ্ধতি, যা সুরক্ষিত নয়। প্রয়োজনে AES বা RSA এর মত শক্তিশালী এনক্রিপশন অ্যালগরিদম ব্যবহার করা যেতে পারে।
  2. কী ব্যবস্থাপনা: char এর পরিবর্তে একটি দীর্ঘ এবং শক্তিশালী কী ব্যবহারের মাধ্যমে এনক্রিপশন আরও শক্তিশালী করা যেতে পারে।
  3. ত্রুটি হ্যান্ডলিং: ফাইল ইনপুট-আউটপুট এবং অন্যান্য ত্রুটি হ্যান্ডলিং আরও উন্নত করা যায়।

এই প্রোগ্রামটি একটি বেসিক এনক্রিপশন ও ডিক্রিপশন টুল, যা সহজেই ব্যবহার করা যায় এবং ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করার জন্য কার্যকর।

 

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion